Functional programming
I really love functional programming
I played with Racket, Clojure, Ocaml, Rescript, Haskell and Unison
They're all pretty great langs
The thing I like most about it is the pure aspect of functions that make
them not only easier to debug, but overall easier to think about
Unison
The last one I played with
I might do a post about this one in the futur if I continue using it a lot
It has a very interesting way to think about codebases
Basically codebases are viewed as something you interact with through files, instead of something composed or build from files
Otherwise, it's pretty similar to Haskell but syntatically and semantically
It deals with side-effects a bit differently by encapsulating them in the transformation as abilities instead of in the types as monads
I do not understand monads nor abilities so you may want to check them out for yourself but here is a little idea of how it looks just by looking at the type signature of each
In Haskell you got :
- hPutStrLn :: Handle -> String -> IO ()
And in Unison it's :
- io.printLine : Text ->{IO, Exception} ()